package 算法题;
import java.util.ArrayList;
import java.util.Scanner;

//迅雷招聘的编程题：
//计算一个整数的2进制到5进制数每一位的和
//如：一个数为5，二进制为101，三进制为12，四进制为11，五进制为10，
//   所以和为：1+0+1 + 1+2 + 1+1 +1+0 = 8
public class _2To5Sum {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num=in.nextInt();
        int sum=cacul2to5sum(num);
        System.out.println(sum);
    }

    private static int cacul2to5sum(int num) {
        //用集合装数据项不确定的数
        ArrayList<Integer> integers = new ArrayList<>();
        //遍历获得二进制到五进制数的每一位，并加入到集合中
        for(int i=2;i<=5;i++){
            int tempNum=num; //每次必须使用原来的整数
            //很明显，根据N进制数的求法，需要在商等于0时终止循环
            while((tempNum/i)!=0){
                integers.add(tempNum%i);
                tempNum=tempNum/i;
            }
            //商不为0时，此时余数还能为1，需要添加到集合中
            if((tempNum%i)!=0) integers.add(tempNum%i);
        }
        //计算集合中数的和即可
        int sum=0;
        for (int i: integers) {
            sum+=i;
        }
        return sum;
    }
}
